#ifndef A8_INIFILE_H
#define A8_INIFILE_H

#include <string>
#include <vector>
#include <fstream>
#include <iostream>

namespace a8
{
  class IniFile
  {
  public:
    IniFile(const std::string& fileName) { mFileName = fileName; }
    virtual ~IniFile();
    std::string getFileName() { return mFileName; }

    void DeleteKey(const std::string& section, const std::string& key)
    {
    }
    void EraseSection(const std::string& section)
    {
    }
    bool SectionExists(const std::string& section)
    {
      return false;
    }
    void ReadSection(const std::string& section, std::vector<std::string>& keys)
    {
    }
    void ReadSections(std::vector<std::string>& sections)
    {
    }
    void ReadSectionValues(const std::string& section, std::vector<std::string>& values)
    {
    }

    std::string ReadString(const std::string& section, const std::string& key; const std::string& defValue="")
    {
      return defValue;
    }
    int ReadInt(const std::string& section, const std::string& key, int defValue=0)
    {
      return defValue;
    }    
    bool ReadBool(const std::string& section, const std::string& key, bool defValue=false)
    {
      return defValue;
    }
    void WriteString(const std::string& section, const std::string& key, const std::string& value)
    {
    }
    void WriteInt(const std::string& section, const std::string& key, int value)
    {
    }
    void WriteBool(const std::string& section, const std::string& key, bool value)
    {
    }
  private:
    std::string mFileName;

    static void Ini_DeleteKey(const std::string& fileName, const std::string& section, const std::string& key)
    {
      std::fstream fs;
      fs.open(fileName, ios::in|ios::out|ios::nocreate);
      fs.close();
    }
  };
}

#endif
